package ${groupId}.config.doc;

import javax.annotation.Resource;

import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;

@Configuration
public class Knife4jConfig {
	
	@Resource
	private Environment env;
	/**
	 * 创建了一个api接口的分组 除了配置文件方式创建分组，也可以通过注册bean创建分组
	 */
	@Bean
	GroupedOpenApi adminApi() {
		return GroupedOpenApi.builder()
				// 分组名称
				.group("${artifactId}("+env.getActiveProfiles()[0]+")")
				// 接口请求路径规则
				.pathsToMatch("/**").build();
	}

	/**
	 * 配置基本信息
	 */
	@Bean
	OpenAPI openAPI() {
		return new OpenAPI().info(new Info()
				// 标题
				.title("笑傲江湖")
				// 描述Api接口文档的基本信息
				.description("十步杀一人，千里不留行。事了拂衣去，深藏身与名")
				// 版本
				.version("v1.0")
				.termsOfService("<a href='/boss/login' target='_blank'>1.后台地址</a>")
				// 设置OpenAPI文档的联系信息，姓名，邮箱。
				.contact(new Contact().name("寒门飞雪").email("jlcon@qq.com"))
				// 设置OpenAPI文档的许可证信息，包括许可证名称为"Apache 2.0"，许可证URL为"http://springdoc.org"。
				.license(new License().name("Apache 2.0").url("http://springdoc.org")));
	}
}
